public class Sort4 {
//    这是选择排序的第二种写法,前面的写法是一次遍历只能后把最小的元素放在首部,
//    但是可以知道的是,一次遍历既可以得到最小的元素同时也可以得到最大的元素.这样可以改进一下这个算法
    public void selectSort2(int[] array){
//       可以设置left和right来进行比较
        int left=0;
        int right=array.length-1;
        while(left<right){
//            相遇的时候就是结束了
            int min=left;
            int max=right;
//           遍历一边找到最小的和最大的
            for(int i=left+1;i<=right;i++){
                if(array[min]>array[i]){
                    min=i;
                }
                if(array[max]<array[i]){
                    max=i;
                }
            }
//            这里出循环之后,得到了最大元素和最小元素的下标

            swap(array,min,left);
            swap(array,max,right);
            left++;
            right--;
        }
    }
    public static void swap(int[] array,int i,int j){
        int temp=array[i];
        array[i]=array[j];
        array[j]=temp;
    }
}
